// Copyright 2021 The Tint Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

////////////////////////////////////////////////////////////////////////////////
// File generated by tools/intrinsic-gen
// using the template:
//   src/intrinsic_table.inl.tmpl
// and the intrinsic defintion file:
//   src/intrinsics.def
//
// Do not modify this file directly
////////////////////////////////////////////////////////////////////////////////

// clang-format off

/// TypeMatcher for 'type bool'
/// @see src/intrinsics.def:68:6
class Bool : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Bool::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_bool(ty)) {
    return nullptr;
  }
  return build_bool(state);
}

std::string Bool::String(MatchState&) const {
  return "bool";
}

/// TypeMatcher for 'type f32'
/// @see src/intrinsics.def:69:6
class F32 : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* F32::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_f32(ty)) {
    return nullptr;
  }
  return build_f32(state);
}

std::string F32::String(MatchState&) const {
  return "f32";
}

/// TypeMatcher for 'type i32'
/// @see src/intrinsics.def:70:6
class I32 : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* I32::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_i32(ty)) {
    return nullptr;
  }
  return build_i32(state);
}

std::string I32::String(MatchState&) const {
  return "i32";
}

/// TypeMatcher for 'type u32'
/// @see src/intrinsics.def:71:6
class U32 : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* U32::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_u32(ty)) {
    return nullptr;
  }
  return build_u32(state);
}

std::string U32::String(MatchState&) const {
  return "u32";
}

/// TypeMatcher for 'type vec2'
/// @see src/intrinsics.def:72:6
class Vec2 : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Vec2::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_vec2(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_vec2(state, T);
}

std::string Vec2::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "vec2<" + T + ">";
}

/// TypeMatcher for 'type vec3'
/// @see src/intrinsics.def:73:6
class Vec3 : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Vec3::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_vec3(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_vec3(state, T);
}

std::string Vec3::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "vec3<" + T + ">";
}

/// TypeMatcher for 'type vec4'
/// @see src/intrinsics.def:74:6
class Vec4 : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Vec4::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_vec4(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_vec4(state, T);
}

std::string Vec4::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "vec4<" + T + ">";
}

/// TypeMatcher for 'type vec'
/// @see src/intrinsics.def:75:37
class Vec : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Vec::Match(MatchState& state, const sem::Type* ty) const {
  Number N = Number::invalid;
  const sem::Type* T = nullptr;
  if (!match_vec(ty, N, T)) {
    return nullptr;
  }
  N = state.Num(N);
  if (!N.IsValid()) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_vec(state, N, T);
}

std::string Vec::String(MatchState& state) const {
  const std::string N = state.NumName();
  const std::string T = state.TypeName();
  std::stringstream ss;
  ss << "vec" << N << "<" << T << ">";
  return ss.str();
}

/// TypeMatcher for 'type mat'
/// @see src/intrinsics.def:76:37
class Mat : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Mat::Match(MatchState& state, const sem::Type* ty) const {
  Number N = Number::invalid;
  Number M = Number::invalid;
  const sem::Type* T = nullptr;
  if (!match_mat(ty, N, M, T)) {
    return nullptr;
  }
  N = state.Num(N);
  if (!N.IsValid()) {
    return nullptr;
  }
  M = state.Num(M);
  if (!M.IsValid()) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_mat(state, N, M, T);
}

std::string Mat::String(MatchState& state) const {
  const std::string N = state.NumName();
  const std::string M = state.NumName();
  const std::string T = state.TypeName();
  std::stringstream ss;
  ss << "mat" << N << "x" << M << "<" << T << ">";
  return ss.str();
}

/// TypeMatcher for 'type ptr'
/// @see src/intrinsics.def:77:6
class Ptr : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Ptr::Match(MatchState& state, const sem::Type* ty) const {
  Number S = Number::invalid;
  const sem::Type* T = nullptr;
  Number A = Number::invalid;
  if (!match_ptr(ty, S, T, A)) {
    return nullptr;
  }
  S = state.Num(S);
  if (!S.IsValid()) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  A = state.Num(A);
  if (!A.IsValid()) {
    return nullptr;
  }
  return build_ptr(state, S, T, A);
}

std::string Ptr::String(MatchState& state) const {
  const std::string S = state.NumName();
  const std::string T = state.TypeName();
  const std::string A = state.NumName();
  return "ptr<" + S + ", " + T + ", " + A + ">";
}

/// TypeMatcher for 'type atomic'
/// @see src/intrinsics.def:78:6
class Atomic : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Atomic::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_atomic(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_atomic(state, T);
}

std::string Atomic::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "atomic<" + T + ">";
}

/// TypeMatcher for 'type array'
/// @see src/intrinsics.def:79:6
class Array : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Array::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_array(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_array(state, T);
}

std::string Array::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "array<" + T + ">";
}

/// TypeMatcher for 'type sampler'
/// @see src/intrinsics.def:80:6
class Sampler : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Sampler::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_sampler(ty)) {
    return nullptr;
  }
  return build_sampler(state);
}

std::string Sampler::String(MatchState&) const {
  return "sampler";
}

/// TypeMatcher for 'type sampler_comparison'
/// @see src/intrinsics.def:81:6
class SamplerComparison : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* SamplerComparison::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_sampler_comparison(ty)) {
    return nullptr;
  }
  return build_sampler_comparison(state);
}

std::string SamplerComparison::String(MatchState&) const {
  return "sampler_comparison";
}

/// TypeMatcher for 'type texture_1d'
/// @see src/intrinsics.def:82:6
class Texture1D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Texture1D::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_texture_1d(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_texture_1d(state, T);
}

std::string Texture1D::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "texture_1d<" + T + ">";
}

/// TypeMatcher for 'type texture_2d'
/// @see src/intrinsics.def:83:6
class Texture2D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Texture2D::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_texture_2d(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_texture_2d(state, T);
}

std::string Texture2D::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "texture_2d<" + T + ">";
}

/// TypeMatcher for 'type texture_2d_array'
/// @see src/intrinsics.def:84:6
class Texture2DArray : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Texture2DArray::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_texture_2d_array(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_texture_2d_array(state, T);
}

std::string Texture2DArray::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "texture_2d_array<" + T + ">";
}

/// TypeMatcher for 'type texture_3d'
/// @see src/intrinsics.def:85:6
class Texture3D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Texture3D::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_texture_3d(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_texture_3d(state, T);
}

std::string Texture3D::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "texture_3d<" + T + ">";
}

/// TypeMatcher for 'type texture_cube'
/// @see src/intrinsics.def:86:6
class TextureCube : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureCube::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_texture_cube(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_texture_cube(state, T);
}

std::string TextureCube::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "texture_cube<" + T + ">";
}

/// TypeMatcher for 'type texture_cube_array'
/// @see src/intrinsics.def:87:6
class TextureCubeArray : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureCubeArray::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_texture_cube_array(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_texture_cube_array(state, T);
}

std::string TextureCubeArray::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "texture_cube_array<" + T + ">";
}

/// TypeMatcher for 'type texture_multisampled_2d'
/// @see src/intrinsics.def:88:6
class TextureMultisampled2D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureMultisampled2D::Match(MatchState& state, const sem::Type* ty) const {
  const sem::Type* T = nullptr;
  if (!match_texture_multisampled_2d(ty, T)) {
    return nullptr;
  }
  T = state.Type(T);
  if (T == nullptr) {
    return nullptr;
  }
  return build_texture_multisampled_2d(state, T);
}

std::string TextureMultisampled2D::String(MatchState& state) const {
  const std::string T = state.TypeName();
  return "texture_multisampled_2d<" + T + ">";
}

/// TypeMatcher for 'type texture_depth_2d'
/// @see src/intrinsics.def:89:6
class TextureDepth2D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureDepth2D::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_texture_depth_2d(ty)) {
    return nullptr;
  }
  return build_texture_depth_2d(state);
}

std::string TextureDepth2D::String(MatchState&) const {
  return "texture_depth_2d";
}

/// TypeMatcher for 'type texture_depth_2d_array'
/// @see src/intrinsics.def:90:6
class TextureDepth2DArray : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureDepth2DArray::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_texture_depth_2d_array(ty)) {
    return nullptr;
  }
  return build_texture_depth_2d_array(state);
}

std::string TextureDepth2DArray::String(MatchState&) const {
  return "texture_depth_2d_array";
}

/// TypeMatcher for 'type texture_depth_cube'
/// @see src/intrinsics.def:91:6
class TextureDepthCube : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureDepthCube::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_texture_depth_cube(ty)) {
    return nullptr;
  }
  return build_texture_depth_cube(state);
}

std::string TextureDepthCube::String(MatchState&) const {
  return "texture_depth_cube";
}

/// TypeMatcher for 'type texture_depth_cube_array'
/// @see src/intrinsics.def:92:6
class TextureDepthCubeArray : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureDepthCubeArray::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_texture_depth_cube_array(ty)) {
    return nullptr;
  }
  return build_texture_depth_cube_array(state);
}

std::string TextureDepthCubeArray::String(MatchState&) const {
  return "texture_depth_cube_array";
}

/// TypeMatcher for 'type texture_depth_multisampled_2d'
/// @see src/intrinsics.def:93:6
class TextureDepthMultisampled2D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureDepthMultisampled2D::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_texture_depth_multisampled_2d(ty)) {
    return nullptr;
  }
  return build_texture_depth_multisampled_2d(state);
}

std::string TextureDepthMultisampled2D::String(MatchState&) const {
  return "texture_depth_multisampled_2d";
}

/// TypeMatcher for 'type texture_storage_1d'
/// @see src/intrinsics.def:94:6
class TextureStorage1D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureStorage1D::Match(MatchState& state, const sem::Type* ty) const {
  Number F = Number::invalid;
  Number A = Number::invalid;
  if (!match_texture_storage_1d(ty, F, A)) {
    return nullptr;
  }
  F = state.Num(F);
  if (!F.IsValid()) {
    return nullptr;
  }
  A = state.Num(A);
  if (!A.IsValid()) {
    return nullptr;
  }
  return build_texture_storage_1d(state, F, A);
}

std::string TextureStorage1D::String(MatchState& state) const {
  const std::string F = state.NumName();
  const std::string A = state.NumName();
  return "texture_storage_1d<" + F + ", " + A + ">";
}

/// TypeMatcher for 'type texture_storage_2d'
/// @see src/intrinsics.def:95:6
class TextureStorage2D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureStorage2D::Match(MatchState& state, const sem::Type* ty) const {
  Number F = Number::invalid;
  Number A = Number::invalid;
  if (!match_texture_storage_2d(ty, F, A)) {
    return nullptr;
  }
  F = state.Num(F);
  if (!F.IsValid()) {
    return nullptr;
  }
  A = state.Num(A);
  if (!A.IsValid()) {
    return nullptr;
  }
  return build_texture_storage_2d(state, F, A);
}

std::string TextureStorage2D::String(MatchState& state) const {
  const std::string F = state.NumName();
  const std::string A = state.NumName();
  return "texture_storage_2d<" + F + ", " + A + ">";
}

/// TypeMatcher for 'type texture_storage_2d_array'
/// @see src/intrinsics.def:96:6
class TextureStorage2DArray : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureStorage2DArray::Match(MatchState& state, const sem::Type* ty) const {
  Number F = Number::invalid;
  Number A = Number::invalid;
  if (!match_texture_storage_2d_array(ty, F, A)) {
    return nullptr;
  }
  F = state.Num(F);
  if (!F.IsValid()) {
    return nullptr;
  }
  A = state.Num(A);
  if (!A.IsValid()) {
    return nullptr;
  }
  return build_texture_storage_2d_array(state, F, A);
}

std::string TextureStorage2DArray::String(MatchState& state) const {
  const std::string F = state.NumName();
  const std::string A = state.NumName();
  return "texture_storage_2d_array<" + F + ", " + A + ">";
}

/// TypeMatcher for 'type texture_storage_3d'
/// @see src/intrinsics.def:97:6
class TextureStorage3D : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureStorage3D::Match(MatchState& state, const sem::Type* ty) const {
  Number F = Number::invalid;
  Number A = Number::invalid;
  if (!match_texture_storage_3d(ty, F, A)) {
    return nullptr;
  }
  F = state.Num(F);
  if (!F.IsValid()) {
    return nullptr;
  }
  A = state.Num(A);
  if (!A.IsValid()) {
    return nullptr;
  }
  return build_texture_storage_3d(state, F, A);
}

std::string TextureStorage3D::String(MatchState& state) const {
  const std::string F = state.NumName();
  const std::string A = state.NumName();
  return "texture_storage_3d<" + F + ", " + A + ">";
}

/// TypeMatcher for 'type texture_external'
/// @see src/intrinsics.def:98:6
class TextureExternal : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* TextureExternal::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_texture_external(ty)) {
    return nullptr;
  }
  return build_texture_external(state);
}

std::string TextureExternal::String(MatchState&) const {
  return "texture_external";
}

/// TypeMatcher for 'type __modf_result'
/// @see src/intrinsics.def:100:6
class ModfResult : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* ModfResult::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_modf_result(ty)) {
    return nullptr;
  }
  return build_modf_result(state);
}

std::string ModfResult::String(MatchState&) const {
  return "__modf_result";
}

/// TypeMatcher for 'type __modf_result_vec'
/// @see src/intrinsics.def:101:42
class ModfResultVec : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* ModfResultVec::Match(MatchState& state, const sem::Type* ty) const {
  Number N = Number::invalid;
  if (!match_modf_result_vec(ty, N)) {
    return nullptr;
  }
  N = state.Num(N);
  if (!N.IsValid()) {
    return nullptr;
  }
  return build_modf_result_vec(state, N);
}

std::string ModfResultVec::String(MatchState& state) const {
  const std::string N = state.NumName();
  std::stringstream ss;
  ss << "__modf_result_vec" << N;
  return ss.str();
}

/// TypeMatcher for 'type __frexp_result'
/// @see src/intrinsics.def:102:6
class FrexpResult : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* FrexpResult::Match(MatchState& state, const sem::Type* ty) const {
  if (!match_frexp_result(ty)) {
    return nullptr;
  }
  return build_frexp_result(state);
}

std::string FrexpResult::String(MatchState&) const {
  return "__frexp_result";
}

/// TypeMatcher for 'type __frexp_result_vec'
/// @see src/intrinsics.def:103:43
class FrexpResultVec : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* FrexpResultVec::Match(MatchState& state, const sem::Type* ty) const {
  Number N = Number::invalid;
  if (!match_frexp_result_vec(ty, N)) {
    return nullptr;
  }
  N = state.Num(N);
  if (!N.IsValid()) {
    return nullptr;
  }
  return build_frexp_result_vec(state, N);
}

std::string FrexpResultVec::String(MatchState& state) const {
  const std::string N = state.NumName();
  std::stringstream ss;
  ss << "__frexp_result_vec" << N;
  return ss.str();
}

/// TypeMatcher for 'match fiu32'
/// @see src/intrinsics.def:111:7
class Fiu32 : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules, and returns the
  /// expected, canonicalized type on success.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Fiu32::Match(MatchState& state, const sem::Type* ty) const {
  if (match_f32(ty)) {
    return build_f32(state);
  }
  if (match_i32(ty)) {
    return build_i32(state);
  }
  if (match_u32(ty)) {
    return build_u32(state);
  }
  return nullptr;
}

std::string Fiu32::String(MatchState&) const {
  return "f32, i32 or u32";
}

/// TypeMatcher for 'match iu32'
/// @see src/intrinsics.def:112:7
class Iu32 : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules, and returns the
  /// expected, canonicalized type on success.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Iu32::Match(MatchState& state, const sem::Type* ty) const {
  if (match_i32(ty)) {
    return build_i32(state);
  }
  if (match_u32(ty)) {
    return build_u32(state);
  }
  return nullptr;
}

std::string Iu32::String(MatchState&) const {
  return "i32 or u32";
}

/// TypeMatcher for 'match scalar'
/// @see src/intrinsics.def:113:7
class Scalar : public TypeMatcher {
 public:
  /// Checks whether the given type matches the matcher rules, and returns the
  /// expected, canonicalized type on success.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param type the type to match
  /// @returns the canonicalized type on match, otherwise nullptr
  const sem::Type* Match(MatchState& state,
                         const sem::Type* type) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

const sem::Type* Scalar::Match(MatchState& state, const sem::Type* ty) const {
  if (match_f32(ty)) {
    return build_f32(state);
  }
  if (match_i32(ty)) {
    return build_i32(state);
  }
  if (match_u32(ty)) {
    return build_u32(state);
  }
  if (match_bool(ty)) {
    return build_bool(state);
  }
  return nullptr;
}

std::string Scalar::String(MatchState&) const {
  return "f32, i32, u32 or bool";
}

/// EnumMatcher for 'match f32_texel_format'
/// @see src/intrinsics.def:124:7
class F32TexelFormat : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number F32TexelFormat::Match(MatchState&, Number number) const {
  switch (static_cast<TexelFormat>(number.Value())) {
    case TexelFormat::kRgba8Unorm:
    case TexelFormat::kRgba8Snorm:
    case TexelFormat::kRgba16Float:
    case TexelFormat::kR32Float:
    case TexelFormat::kRg32Float:
    case TexelFormat::kRgba32Float:
      return number;
    default:
      return Number::invalid;
  }
}

std::string F32TexelFormat::String(MatchState&) const {
  return "rgba8unorm, rgba8snorm, rgba16float, r32float, rg32float or rgba32float";
}

/// EnumMatcher for 'match i32_texel_format'
/// @see src/intrinsics.def:126:7
class I32TexelFormat : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number I32TexelFormat::Match(MatchState&, Number number) const {
  switch (static_cast<TexelFormat>(number.Value())) {
    case TexelFormat::kRgba8Sint:
    case TexelFormat::kRgba16Sint:
    case TexelFormat::kR32Sint:
    case TexelFormat::kRg32Sint:
    case TexelFormat::kRgba32Sint:
      return number;
    default:
      return Number::invalid;
  }
}

std::string I32TexelFormat::String(MatchState&) const {
  return "rgba8sint, rgba16sint, r32sint, rg32sint or rgba32sint";
}

/// EnumMatcher for 'match u32_texel_format'
/// @see src/intrinsics.def:128:7
class U32TexelFormat : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number U32TexelFormat::Match(MatchState&, Number number) const {
  switch (static_cast<TexelFormat>(number.Value())) {
    case TexelFormat::kRgba8Uint:
    case TexelFormat::kRgba16Uint:
    case TexelFormat::kR32Uint:
    case TexelFormat::kRg32Uint:
    case TexelFormat::kRgba32Uint:
      return number;
    default:
      return Number::invalid;
  }
}

std::string U32TexelFormat::String(MatchState&) const {
  return "rgba8uint, rgba16uint, r32uint, rg32uint or rgba32uint";
}

/// EnumMatcher for 'match write_only'
/// @see src/intrinsics.def:131:7
class WriteOnly : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number WriteOnly::Match(MatchState&, Number number) const {
  if (number.IsAny() || number.Value() == static_cast<uint32_t>(Access::kWrite)) {
    return Number(static_cast<uint32_t>(Access::kWrite));
  }
  return Number::invalid;
}

std::string WriteOnly::String(MatchState&) const {
  return "write";
}

/// EnumMatcher for 'match function_private_workgroup'
/// @see src/intrinsics.def:133:7
class FunctionPrivateWorkgroup : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number FunctionPrivateWorkgroup::Match(MatchState&, Number number) const {
  switch (static_cast<StorageClass>(number.Value())) {
    case StorageClass::kFunction:
    case StorageClass::kPrivate:
    case StorageClass::kWorkgroup:
      return number;
    default:
      return Number::invalid;
  }
}

std::string FunctionPrivateWorkgroup::String(MatchState&) const {
  return "function, private or workgroup";
}

/// EnumMatcher for 'match workgroup_or_storage'
/// @see src/intrinsics.def:134:7
class WorkgroupOrStorage : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number WorkgroupOrStorage::Match(MatchState&, Number number) const {
  switch (static_cast<StorageClass>(number.Value())) {
    case StorageClass::kWorkgroup:
    case StorageClass::kStorage:
      return number;
    default:
      return Number::invalid;
  }
}

std::string WorkgroupOrStorage::String(MatchState&) const {
  return "workgroup or storage";
}

/// EnumMatcher for 'match storage'
class Storage : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number Storage::Match(MatchState&, Number number) const {
  if (number.IsAny() || number.Value() == static_cast<uint32_t>(StorageClass::kStorage)) {
    return Number(static_cast<uint32_t>(StorageClass::kStorage));
  }
  return Number::invalid;
}

std::string Storage::String(MatchState&) const {
  return "storage";
}

/// EnumMatcher for 'match write'
class Write : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number Write::Match(MatchState&, Number number) const {
  if (number.IsAny() || number.Value() == static_cast<uint32_t>(Access::kWrite)) {
    return Number(static_cast<uint32_t>(Access::kWrite));
  }
  return Number::invalid;
}

std::string Write::String(MatchState&) const {
  return "write";
}

/// EnumMatcher for 'match read_write'
class ReadWrite : public NumberMatcher {
 public:
  /// Checks whether the given number matches the enum matcher rules.
  /// Match may close open types and numbers in state.
  /// @param state the MatchState
  /// @param number the enum value as a Number
  /// @return true if the enum value matches the set
  Number Match(MatchState& state, Number number) const override;
  /// @param state the MatchState
  /// @return a string representation of the matcher.
  std::string String(MatchState& state) const override;
};

Number ReadWrite::Match(MatchState&, Number number) const {
  if (number.IsAny() || number.Value() == static_cast<uint32_t>(Access::kReadWrite)) {
    return Number(static_cast<uint32_t>(Access::kReadWrite));
  }
  return Number::invalid;
}

std::string ReadWrite::String(MatchState&) const {
  return "read_write";
}

/// Matchers holds type and number matchers
class Matchers {
 private:
  OpenTypeMatcher open_type_0_{0};
  OpenNumberMatcher open_number_0_{0};
  OpenNumberMatcher open_number_1_{1};
  Bool Bool_;
  F32 F32_;
  I32 I32_;
  U32 U32_;
  Vec2 Vec2_;
  Vec3 Vec3_;
  Vec4 Vec4_;
  Vec Vec_;
  Mat Mat_;
  Ptr Ptr_;
  Atomic Atomic_;
  Array Array_;
  Sampler Sampler_;
  SamplerComparison SamplerComparison_;
  Texture1D Texture1D_;
  Texture2D Texture2D_;
  Texture2DArray Texture2DArray_;
  Texture3D Texture3D_;
  TextureCube TextureCube_;
  TextureCubeArray TextureCubeArray_;
  TextureMultisampled2D TextureMultisampled2D_;
  TextureDepth2D TextureDepth2D_;
  TextureDepth2DArray TextureDepth2DArray_;
  TextureDepthCube TextureDepthCube_;
  TextureDepthCubeArray TextureDepthCubeArray_;
  TextureDepthMultisampled2D TextureDepthMultisampled2D_;
  TextureStorage1D TextureStorage1D_;
  TextureStorage2D TextureStorage2D_;
  TextureStorage2DArray TextureStorage2DArray_;
  TextureStorage3D TextureStorage3D_;
  TextureExternal TextureExternal_;
  ModfResult ModfResult_;
  ModfResultVec ModfResultVec_;
  FrexpResult FrexpResult_;
  FrexpResultVec FrexpResultVec_;
  Fiu32 Fiu32_;
  Iu32 Iu32_;
  Scalar Scalar_;
  F32TexelFormat F32TexelFormat_;
  I32TexelFormat I32TexelFormat_;
  U32TexelFormat U32TexelFormat_;
  WriteOnly WriteOnly_;
  FunctionPrivateWorkgroup FunctionPrivateWorkgroup_;
  WorkgroupOrStorage WorkgroupOrStorage_;
  Storage Storage_;
  Write Write_;
  ReadWrite ReadWrite_;

 public:
  /// Constructor
  Matchers();
  /// Destructor
  ~Matchers();

  /// The open-types, types, and type matchers
  TypeMatcher const* const type[39] = {
    /* [0] */ &open_type_0_,
    /* [1] */ &Bool_,
    /* [2] */ &F32_,
    /* [3] */ &I32_,
    /* [4] */ &U32_,
    /* [5] */ &Vec2_,
    /* [6] */ &Vec3_,
    /* [7] */ &Vec4_,
    /* [8] */ &Vec_,
    /* [9] */ &Mat_,
    /* [10] */ &Ptr_,
    /* [11] */ &Atomic_,
    /* [12] */ &Array_,
    /* [13] */ &Sampler_,
    /* [14] */ &SamplerComparison_,
    /* [15] */ &Texture1D_,
    /* [16] */ &Texture2D_,
    /* [17] */ &Texture2DArray_,
    /* [18] */ &Texture3D_,
    /* [19] */ &TextureCube_,
    /* [20] */ &TextureCubeArray_,
    /* [21] */ &TextureMultisampled2D_,
    /* [22] */ &TextureDepth2D_,
    /* [23] */ &TextureDepth2DArray_,
    /* [24] */ &TextureDepthCube_,
    /* [25] */ &TextureDepthCubeArray_,
    /* [26] */ &TextureDepthMultisampled2D_,
    /* [27] */ &TextureStorage1D_,
    /* [28] */ &TextureStorage2D_,
    /* [29] */ &TextureStorage2DArray_,
    /* [30] */ &TextureStorage3D_,
    /* [31] */ &TextureExternal_,
    /* [32] */ &ModfResult_,
    /* [33] */ &ModfResultVec_,
    /* [34] */ &FrexpResult_,
    /* [35] */ &FrexpResultVec_,
    /* [36] */ &Fiu32_,
    /* [37] */ &Iu32_,
    /* [38] */ &Scalar_,
  };

  /// The open-numbers, and number matchers
  NumberMatcher const* const number[11] = {
    /* [0] */ &open_number_0_,
    /* [1] */ &open_number_1_,
    /* [2] */ &F32TexelFormat_,
    /* [3] */ &I32TexelFormat_,
    /* [4] */ &U32TexelFormat_,
    /* [5] */ &WriteOnly_,
    /* [6] */ &FunctionPrivateWorkgroup_,
    /* [7] */ &WorkgroupOrStorage_,
    /* [8] */ &Storage_,
    /* [9] */ &Write_,
    /* [10] */ &ReadWrite_,
  };
};

Matchers::Matchers() = default;
Matchers::~Matchers() = default;

constexpr MatcherIndex kMatcherIndices[] = {
  /* [0] */ 10,
  /* [1] */ 0,
  /* [2] */ 11,
  /* [3] */ 0,
  /* [4] */ 10,
  /* [5] */ 8,
  /* [6] */ 12,
  /* [7] */ 0,
  /* [8] */ 0,
  /* [9] */ 9,
  /* [10] */ 1,
  /* [11] */ 0,
  /* [12] */ 2,
  /* [13] */ 9,
  /* [14] */ 0,
  /* [15] */ 1,
  /* [16] */ 2,
  /* [17] */ 9,
  /* [18] */ 0,
  /* [19] */ 0,
  /* [20] */ 2,
  /* [21] */ 8,
  /* [22] */ 0,
  /* [23] */ 2,
  /* [24] */ 8,
  /* [25] */ 0,
  /* [26] */ 1,
  /* [27] */ 29,
  /* [28] */ 0,
  /* [29] */ 1,
  /* [30] */ 30,
  /* [31] */ 0,
  /* [32] */ 1,
  /* [33] */ 28,
  /* [34] */ 0,
  /* [35] */ 1,
  /* [36] */ 27,
  /* [37] */ 0,
  /* [38] */ 1,
  /* [39] */ 8,
  /* [40] */ 0,
  /* [41] */ 0,
  /* [42] */ 30,
  /* [43] */ 4,
  /* [44] */ 9,
  /* [45] */ 29,
  /* [46] */ 4,
  /* [47] */ 9,
  /* [48] */ 28,
  /* [49] */ 4,
  /* [50] */ 9,
  /* [51] */ 27,
  /* [52] */ 4,
  /* [53] */ 9,
  /* [54] */ 30,
  /* [55] */ 3,
  /* [56] */ 9,
  /* [57] */ 29,
  /* [58] */ 3,
  /* [59] */ 9,
  /* [60] */ 28,
  /* [61] */ 3,
  /* [62] */ 9,
  /* [63] */ 27,
  /* [64] */ 3,
  /* [65] */ 9,
  /* [66] */ 30,
  /* [67] */ 2,
  /* [68] */ 9,
  /* [69] */ 29,
  /* [70] */ 2,
  /* [71] */ 9,
  /* [72] */ 28,
  /* [73] */ 2,
  /* [74] */ 9,
  /* [75] */ 27,
  /* [76] */ 2,
  /* [77] */ 9,
  /* [78] */ 8,
  /* [79] */ 0,
  /* [80] */ 3,
  /* [81] */ 7,
  /* [82] */ 4,
  /* [83] */ 18,
  /* [84] */ 2,
  /* [85] */ 7,
  /* [86] */ 2,
  /* [87] */ 5,
  /* [88] */ 3,
  /* [89] */ 6,
  /* [90] */ 2,
  /* [91] */ 5,
  /* [92] */ 2,
  /* [93] */ 17,
  /* [94] */ 2,
  /* [95] */ 6,
  /* [96] */ 3,
  /* [97] */ 19,
  /* [98] */ 2,
  /* [99] */ 16,
  /* [100] */ 2,
  /* [101] */ 20,
  /* [102] */ 2,
  /* [103] */ 33,
  /* [104] */ 0,
  /* [105] */ 5,
  /* [106] */ 0,
  /* [107] */ 35,
  /* [108] */ 0,
  /* [109] */ 15,
  /* [110] */ 0,
  /* [111] */ 7,
  /* [112] */ 3,
  /* [113] */ 7,
  /* [114] */ 0,
  /* [115] */ 16,
  /* [116] */ 0,
  /* [117] */ 17,
  /* [118] */ 0,
  /* [119] */ 18,
  /* [120] */ 0,
  /* [121] */ 21,
  /* [122] */ 0,
  /* [123] */ 19,
  /* [124] */ 0,
  /* [125] */ 20,
  /* [126] */ 0,
  /* [127] */ 15,
  /* [128] */ 2,
  /* [129] */ 24,
  /* [130] */ 25,
  /* [131] */ 23,
  /* [132] */ 22,
  /* [133] */ 26,
  /* [134] */ 13,
  /* [135] */ 14,
  /* [136] */ 31,
  /* [137] */ 32,
  /* [138] */ 34,
};

// Assert that the MatcherIndex is big enough to index all the matchers, plus
// kNoMatcher.
static_assert(static_cast<int>(sizeof(kMatcherIndices) / sizeof(kMatcherIndices[0])) <
              static_cast<int>(std::numeric_limits<MatcherIndex>::max() - 1),
              "MatcherIndex is not large enough to index kMatcherIndices");

constexpr ParameterInfo kParameters[] = {
  {
    /* [0] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[93],
  },
  {
    /* [1] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [2] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [3] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [4] */
    /* usage */ ParameterUsage::kDdx,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [5] */
    /* usage */ ParameterUsage::kDdy,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [6] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [7] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [8] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [9] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [10] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [11] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [12] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [13] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[101],
  },
  {
    /* [14] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [15] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [16] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [17] */
    /* usage */ ParameterUsage::kDdx,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [18] */
    /* usage */ ParameterUsage::kDdy,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [19] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[93],
  },
  {
    /* [20] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [21] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [22] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [23] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [24] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [25] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[93],
  },
  {
    /* [26] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [27] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [28] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [29] */
    /* usage */ ParameterUsage::kBias,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [30] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [31] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[93],
  },
  {
    /* [32] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [33] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [34] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [35] */
    /* usage */ ParameterUsage::kDdx,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [36] */
    /* usage */ ParameterUsage::kDdy,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [37] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[99],
  },
  {
    /* [38] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [39] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [40] */
    /* usage */ ParameterUsage::kDdx,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [41] */
    /* usage */ ParameterUsage::kDdy,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [42] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [43] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [44] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [45] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [46] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [47] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [48] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [49] */
    /* usage */ ParameterUsage::kComponent,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [50] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[117],
  },
  {
    /* [51] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [52] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [53] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [54] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [55] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [56] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [57] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [58] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [59] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [60] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [61] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[83],
  },
  {
    /* [62] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [63] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [64] */
    /* usage */ ParameterUsage::kDdx,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [65] */
    /* usage */ ParameterUsage::kDdy,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [66] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[95],
  },
  {
    /* [67] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [68] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [69] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [70] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [71] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [72] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [73] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [74] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [75] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [76] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [77] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [78] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [79] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [80] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [81] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [82] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [83] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [84] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [85] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [86] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [87] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [88] */
    /* usage */ ParameterUsage::kComponent,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [89] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[125],
  },
  {
    /* [90] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [91] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [92] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [93] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [94] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [95] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [96] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [97] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [98] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [99] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [100] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [101] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [102] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [103] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[93],
  },
  {
    /* [104] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [105] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [106] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [107] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [108] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [109] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [110] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [111] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [112] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [113] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[101],
  },
  {
    /* [114] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [115] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [116] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [117] */
    /* usage */ ParameterUsage::kBias,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [118] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [119] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [120] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [121] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [122] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [123] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [124] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [125] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [126] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [127] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [128] */
    /* usage */ ParameterUsage::kComponent,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [129] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[117],
  },
  {
    /* [130] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [131] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [132] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [133] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [134] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [135] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [136] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [137] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [138] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [139] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [140] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [141] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [142] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [143] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[99],
  },
  {
    /* [144] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [145] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [146] */
    /* usage */ ParameterUsage::kDdx,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [147] */
    /* usage */ ParameterUsage::kDdy,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [148] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [149] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [150] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [151] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [152] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [153] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [154] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [155] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [156] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [157] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [158] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[83],
  },
  {
    /* [159] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [160] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [161] */
    /* usage */ ParameterUsage::kBias,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [162] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[95],
  },
  {
    /* [163] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[101],
  },
  {
    /* [164] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [165] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [166] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [167] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [168] */
    /* usage */ ParameterUsage::kComponent,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [169] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[115],
  },
  {
    /* [170] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [171] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [172] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [173] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[83],
  },
  {
    /* [174] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [175] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [176] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [177] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[95],
  },
  {
    /* [178] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[93],
  },
  {
    /* [179] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [180] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [181] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [182] */
    /* usage */ ParameterUsage::kBias,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [183] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[99],
  },
  {
    /* [184] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [185] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [186] */
    /* usage */ ParameterUsage::kBias,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [187] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [188] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[93],
  },
  {
    /* [189] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [190] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [191] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [192] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [193] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[99],
  },
  {
    /* [194] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [195] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [196] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [197] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [198] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[83],
  },
  {
    /* [199] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [200] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [201] */
    /* usage */ ParameterUsage::kDdx,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [202] */
    /* usage */ ParameterUsage::kDdy,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [203] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [204] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [205] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [206] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [207] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [208] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[97],
  },
  {
    /* [209] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [210] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [211] */
    /* usage */ ParameterUsage::kDdx,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [212] */
    /* usage */ ParameterUsage::kDdy,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [213] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [214] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [215] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [216] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [217] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [218] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[99],
  },
  {
    /* [219] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [220] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [221] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [222] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[83],
  },
  {
    /* [223] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [224] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [225] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [226] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[97],
  },
  {
    /* [227] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [228] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [229] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [230] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [231] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [232] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [233] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [234] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[99],
  },
  {
    /* [235] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [236] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [237] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [238] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [239] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [240] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [241] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [242] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [243] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [244] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [245] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [246] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[93],
  },
  {
    /* [247] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [248] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [249] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [250] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [251] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [252] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [253] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [254] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[69],
  },
  {
    /* [255] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [256] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [257] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[85],
  },
  {
    /* [258] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [259] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [260] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [261] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [262] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[83],
  },
  {
    /* [263] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [264] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [265] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[95],
  },
  {
    /* [266] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[97],
  },
  {
    /* [267] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [268] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [269] */
    /* usage */ ParameterUsage::kBias,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [270] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [271] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [272] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [273] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [274] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [275] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [276] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [277] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [278] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [279] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [280] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [281] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [282] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [283] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [284] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [285] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [286] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[57],
  },
  {
    /* [287] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [288] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [289] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[111],
  },
  {
    /* [290] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [291] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [292] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [293] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [294] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [295] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[135],
  },
  {
    /* [296] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [297] */
    /* usage */ ParameterUsage::kDepthRef,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [298] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[45],
  },
  {
    /* [299] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [300] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [301] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[81],
  },
  {
    /* [302] */
    /* usage */ ParameterUsage::kComponent,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [303] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[123],
  },
  {
    /* [304] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [305] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [306] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[117],
  },
  {
    /* [307] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [308] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [309] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [310] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[83],
  },
  {
    /* [311] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [312] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [313] */
    /* usage */ ParameterUsage::kBias,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [314] */
    /* usage */ ParameterUsage::kComponent,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [315] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[115],
  },
  {
    /* [316] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [317] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [318] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[101],
  },
  {
    /* [319] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [320] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [321] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [322] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [323] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [324] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [325] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [326] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[99],
  },
  {
    /* [327] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [328] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [329] */
    /* usage */ ParameterUsage::kBias,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [330] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [331] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [332] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [333] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [334] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [335] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [336] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [337] */
    /* usage */ ParameterUsage::kOffset,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [338] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [339] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [340] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [341] */
    /* usage */ ParameterUsage::kArrayIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [342] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[54],
  },
  {
    /* [343] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[95],
  },
  {
    /* [344] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[111],
  },
  {
    /* [345] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [346] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [347] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [348] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [349] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [350] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [351] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [352] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [353] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [354] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[97],
  },
  {
    /* [355] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [356] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [357] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [358] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [359] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [360] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[83],
  },
  {
    /* [361] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [362] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [363] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [364] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [365] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [366] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [367] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [368] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [369] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [370] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [371] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [372] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[99],
  },
  {
    /* [373] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [374] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [375] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[127],
  },
  {
    /* [376] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [377] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [378] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[136],
  },
  {
    /* [379] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [380] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [381] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[75],
  },
  {
    /* [382] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [383] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[85],
  },
  {
    /* [384] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [385] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [386] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [387] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [388] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [389] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [390] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [391] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [392] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [393] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[72],
  },
  {
    /* [394] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [395] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[85],
  },
  {
    /* [396] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[66],
  },
  {
    /* [397] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[95],
  },
  {
    /* [398] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[85],
  },
  {
    /* [399] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [400] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [401] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [402] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [403] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [404] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [405] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [406] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [407] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [408] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[63],
  },
  {
    /* [409] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [410] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[111],
  },
  {
    /* [411] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[60],
  },
  {
    /* [412] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [413] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[111],
  },
  {
    /* [414] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[51],
  },
  {
    /* [415] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [416] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[81],
  },
  {
    /* [417] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [418] */
    /* usage */ ParameterUsage::kSampler,
    /* matcher indices */ &kMatcherIndices[134],
  },
  {
    /* [419] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [420] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[48],
  },
  {
    /* [421] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [422] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[81],
  },
  {
    /* [423] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[42],
  },
  {
    /* [424] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[95],
  },
  {
    /* [425] */
    /* usage */ ParameterUsage::kValue,
    /* matcher indices */ &kMatcherIndices[81],
  },
  {
    /* [426] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[109],
  },
  {
    /* [427] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [428] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [429] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[115],
  },
  {
    /* [430] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [431] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [432] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [433] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [434] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [435] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[119],
  },
  {
    /* [436] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[95],
  },
  {
    /* [437] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [438] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[121],
  },
  {
    /* [439] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [440] */
    /* usage */ ParameterUsage::kSampleIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [441] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [442] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [443] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [444] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [445] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [446] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [447] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [448] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [449] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[10],
  },
  {
    /* [450] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[133],
  },
  {
    /* [451] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [452] */
    /* usage */ ParameterUsage::kSampleIndex,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [453] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [454] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [455] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[24],
  },
  {
    /* [456] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [457] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [458] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[10],
  },
  {
    /* [459] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [460] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [461] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [462] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [463] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [464] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [465] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [466] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [467] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [468] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [469] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [470] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [471] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [472] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [473] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [474] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [475] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[136],
  },
  {
    /* [476] */
    /* usage */ ParameterUsage::kCoords,
    /* matcher indices */ &kMatcherIndices[87],
  },
  {
    /* [477] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [478] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [479] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [480] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [481] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [482] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [483] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [484] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [485] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [486] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [487] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [488] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[89],
  },
  {
    /* [489] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [490] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [491] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [492] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [493] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [494] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [495] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [496] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [497] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [498] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[78],
  },
  {
    /* [499] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [500] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [501] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [502] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [503] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [504] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [505] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [506] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [507] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [508] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [509] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [510] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [511] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[109],
  },
  {
    /* [512] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [513] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [514] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [515] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[115],
  },
  {
    /* [516] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [517] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [518] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [519] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[117],
  },
  {
    /* [520] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [521] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [522] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [523] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[119],
  },
  {
    /* [524] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [525] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [526] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [527] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[123],
  },
  {
    /* [528] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [529] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [530] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [531] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[125],
  },
  {
    /* [532] */
    /* usage */ ParameterUsage::kLevel,
    /* matcher indices */ &kMatcherIndices[55],
  },
  {
    /* [533] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [534] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [535] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[121],
  },
  {
    /* [536] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [537] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[125],
  },
  {
    /* [538] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [539] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [540] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [541] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[119],
  },
  {
    /* [542] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[133],
  },
  {
    /* [543] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[36],
  },
  {
    /* [544] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[33],
  },
  {
    /* [545] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[27],
  },
  {
    /* [546] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[30],
  },
  {
    /* [547] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[136],
  },
  {
    /* [548] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [549] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [550] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[117],
  },
  {
    /* [551] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [552] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [553] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[115],
  },
  {
    /* [554] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[109],
  },
  {
    /* [555] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[85],
  },
  {
    /* [556] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[85],
  },
  {
    /* [557] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [558] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [559] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[91],
  },
  {
    /* [560] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [561] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [562] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[43],
  },
  {
    /* [563] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[43],
  },
  {
    /* [564] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[43],
  },
  {
    /* [565] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[123],
  },
  {
    /* [566] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[117],
  },
  {
    /* [567] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[125],
  },
  {
    /* [568] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [569] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [570] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[27],
  },
  {
    /* [571] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[109],
  },
  {
    /* [572] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[115],
  },
  {
    /* [573] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[117],
  },
  {
    /* [574] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[119],
  },
  {
    /* [575] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[123],
  },
  {
    /* [576] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[125],
  },
  {
    /* [577] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[132],
  },
  {
    /* [578] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[131],
  },
  {
    /* [579] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[129],
  },
  {
    /* [580] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[130],
  },
  {
    /* [581] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[121],
  },
  {
    /* [582] */
    /* usage */ ParameterUsage::kTexture,
    /* matcher indices */ &kMatcherIndices[133],
  },
  {
    /* [583] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[43],
  },
  {
    /* [584] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [585] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [586] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [587] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [588] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [589] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [590] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [591] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[43],
  },
  {
    /* [592] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [593] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [594] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [595] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [596] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [597] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [598] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [599] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [600] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [601] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [602] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [603] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [604] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [605] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [606] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [607] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [608] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [609] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [610] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [611] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [612] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [613] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [614] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [615] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [616] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [617] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [618] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [619] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [620] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [621] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [622] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [623] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [624] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [625] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [626] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [627] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [628] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [629] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [630] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [631] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [632] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [633] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[13],
  },
  {
    /* [634] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [635] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[17],
  },
  {
    /* [636] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [637] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [638] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [639] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [640] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
  {
    /* [641] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [642] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [643] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [644] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [645] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [646] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [647] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [648] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [649] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [650] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [651] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [652] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [653] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[4],
  },
  {
    /* [654] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[24],
  },
  {
    /* [655] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[10],
  },
  {
    /* [656] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[24],
  },
  {
    /* [657] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[10],
  },
  {
    /* [658] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [659] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [660] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[39],
  },
  {
    /* [661] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [662] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[0],
  },
  {
    /* [663] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [664] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [665] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [666] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [667] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [668] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[21],
  },
  {
    /* [669] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[12],
  },
  {
    /* [670] */
    /* usage */ ParameterUsage::kNone,
    /* matcher indices */ &kMatcherIndices[1],
  },
};

constexpr OpenTypeInfo kOpenTypes[] = {
  {
    /* [0] */
    /* name */ "T",
    /* matcher index */ kNoMatcher,
  },
  {
    /* [1] */
    /* name */ "T",
    /* matcher index */ 36,
  },
  {
    /* [2] */
    /* name */ "T",
    /* matcher index */ 37,
  },
  {
    /* [3] */
    /* name */ "T",
    /* matcher index */ 38,
  },
};

constexpr OpenNumberInfo kOpenNumbers[] = {
  {
    /* [0] */
    /* name */ "F",
    /* matcher index */ kNoMatcher,
  },
  {
    /* [1] */
    /* name */ "A",
    /* matcher index */ 5,
  },
  {
    /* [2] */
    /* name */ "M",
    /* matcher index */ kNoMatcher,
  },
  {
    /* [3] */
    /* name */ "N",
    /* matcher index */ kNoMatcher,
  },
  {
    /* [4] */
    /* name */ "A",
    /* matcher index */ kNoMatcher,
  },
  {
    /* [5] */
    /* name */ "S",
    /* matcher index */ 7,
  },
};

constexpr OverloadInfo kOverloads[] = {
  {
    /* [0] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[554],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [1] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[511],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [2] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[553],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [3] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[515],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [4] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[550],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [5] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[519],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [6] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[541],
    /* return matcher indices */ &kMatcherIndices[95],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [7] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[523],
    /* return matcher indices */ &kMatcherIndices[95],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [8] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[565],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [9] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[527],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [10] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[537],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [11] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[531],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [12] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[535],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [13] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[534],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [14] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[459],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [15] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[536],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [16] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[529],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [17] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[538],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [18] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[525],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [19] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[540],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [20] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[521],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [21] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[542],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [22] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 2,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[0],
    /* parameters */ &kParameters[543],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [23] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 2,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[0],
    /* parameters */ &kParameters[544],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [24] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 2,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[0],
    /* parameters */ &kParameters[545],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [25] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 2,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[0],
    /* parameters */ &kParameters[546],
    /* return matcher indices */ &kMatcherIndices[95],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [26] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[547],
    /* return matcher indices */ &kMatcherIndices[87],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [27] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[218],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [28] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[193],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [29] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[188],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [30] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[19],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [31] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[222],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [32] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[173],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [33] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[226],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [34] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[163],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [35] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[230],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [36] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[153],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [37] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[148],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [38] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[7],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [39] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[238],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [40] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[133],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [41] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[378],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [42] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[375],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [43] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[372],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [44] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[234],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [45] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[246],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [46] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[103],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [47] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[360],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [48] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[262],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [49] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[354],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [50] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[318],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [51] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[348],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [52] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[334],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [53] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[338],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [54] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[123],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [55] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[345],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [56] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[330],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [57] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[381],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [58] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[393],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [59] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[254],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [60] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[396],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [61] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[408],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [62] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[411],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [63] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[286],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [64] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[342],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [65] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[414],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [66] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[420],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [67] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[298],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [68] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[423],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [69] */
    /* num parameters */ 4,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[314],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [70] */
    /* num parameters */ 5,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[168],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [71] */
    /* num parameters */ 5,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[128],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [72] */
    /* num parameters */ 6,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[49],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [73] */
    /* num parameters */ 4,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[302],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [74] */
    /* num parameters */ 5,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[88],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [75] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[417],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [76] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[290],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [77] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[282],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [78] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[93],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [79] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[405],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [80] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[274],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [81] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[571],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [82] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[572],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [83] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[573],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [84] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[574],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [85] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[575],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [86] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[576],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [87] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[577],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [88] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[578],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [89] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[579],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [90] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[580],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [91] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[426],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [92] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[429],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [93] */
    /* num parameters */ 4,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[306],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [94] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[435],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [95] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[438],
    /* return matcher indices */ &kMatcherIndices[113],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [96] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[441],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [97] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[322],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [98] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[450],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [99] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[475],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [100] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[326],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [101] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[183],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [102] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[178],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [103] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[25],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [104] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[310],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [105] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[158],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [106] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[266],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [107] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[113],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [108] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[143],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [109] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[37],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [110] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[31],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [111] */
    /* num parameters */ 7,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[0],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [112] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[198],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [113] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[61],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [114] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[208],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [115] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[13],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [116] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[270],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [117] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[213],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [118] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[73],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [119] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[43],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [120] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[242],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [121] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[138],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [122] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[258],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [123] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[108],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [124] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[118],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [125] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[55],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [126] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[250],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [127] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[203],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [128] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[294],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [129] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[78],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [130] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[83],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [131] */
    /* num parameters */ 6,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[67],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [132] */
    /* num parameters */ 4,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[278],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [133] */
    /* num parameters */ 5,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[98],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [134] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[566],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [135] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[567],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [136] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[568],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [137] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[569],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [138] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 2,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[0],
    /* parameters */ &kParameters[570],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [139] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[384],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [140] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[387],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [141] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[390],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [142] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[3],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[447],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [143] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[3],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[456],
    /* return matcher indices */ &kMatcherIndices[39],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [144] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[3],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[453],
    /* return matcher indices */ &kMatcherIndices[39],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [145] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[648],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [146] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[647],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [147] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[489],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [148] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[491],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [149] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[637],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [150] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[636],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [151] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[631],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [152] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[630],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [153] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[629],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [154] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[628],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [155] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[627],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [156] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[626],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [157] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[625],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [158] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[624],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [159] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[623],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [160] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[622],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [161] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[621],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [162] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[620],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [163] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[619],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [164] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[618],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [165] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[617],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [166] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[616],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [167] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[640],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [168] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[639],
    /* return matcher indices */ &kMatcherIndices[39],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [169] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[615],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [170] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[614],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [171] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[363],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [172] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[357],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [173] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[613],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [174] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[612],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [175] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[611],
    /* return matcher indices */ &kMatcherIndices[138],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [176] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[610],
    /* return matcher indices */ &kMatcherIndices[107],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [177] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[609],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [178] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[608],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [179] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[607],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [180] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[606],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [181] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[605],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [182] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[604],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
    /* is_deprecated */ false,
  },
  {
    /* [183] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[642],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [184] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[641],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [185] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[602],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [186] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[601],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [187] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[600],
    /* return matcher indices */ &kMatcherIndices[10],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [188] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[599],
    /* return matcher indices */ &kMatcherIndices[24],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [189] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[598],
    /* return matcher indices */ &kMatcherIndices[10],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [190] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[597],
    /* return matcher indices */ &kMatcherIndices[24],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [191] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[596],
    /* return matcher indices */ &kMatcherIndices[10],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [192] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[595],
    /* return matcher indices */ &kMatcherIndices[24],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [193] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[594],
    /* return matcher indices */ &kMatcherIndices[10],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [194] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[593],
    /* return matcher indices */ &kMatcherIndices[24],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [195] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[495],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [196] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[497],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [197] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[590],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [198] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[589],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [199] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[588],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [200] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[587],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [201] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[586],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [202] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[585],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [203] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[505],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [204] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[499],
    /* return matcher indices */ &kMatcherIndices[39],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [205] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[501],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [206] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[503],
    /* return matcher indices */ &kMatcherIndices[39],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [207] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[644],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [208] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[643],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [209] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[584],
    /* return matcher indices */ &kMatcherIndices[137],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [210] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[561],
    /* return matcher indices */ &kMatcherIndices[103],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [211] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[402],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [212] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[399],
    /* return matcher indices */ &kMatcherIndices[39],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [213] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[646],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [214] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[645],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [215] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[581],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [216] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[582],
    /* return matcher indices */ &kMatcherIndices[55],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [217] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[638],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [218] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[634],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [219] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[483],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [220] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[485],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [221] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[650],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [222] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[649],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [223] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[509],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [224] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[513],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [225] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[552],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [226] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[551],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [227] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[652],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [228] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[651],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [229] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[655],
    /* return matcher indices */ &kMatcherIndices[10],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [230] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[654],
    /* return matcher indices */ &kMatcherIndices[10],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [231] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[549],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [232] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[548],
    /* return matcher indices */ &kMatcherIndices[39],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [233] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[657],
    /* return matcher indices */ &kMatcherIndices[10],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [234] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[656],
    /* return matcher indices */ &kMatcherIndices[10],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [235] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[659],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [236] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[658],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [237] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[665],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [238] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[533],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [239] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[669],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [240] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[668],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [241] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[632],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [242] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[592],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [243] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[369],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [244] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[444],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [245] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[663],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [246] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[661],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [247] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[477],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [248] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[479],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [249] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[539],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [250] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[664],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [251] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[667],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [252] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[666],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [253] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[670],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [254] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[660],
    /* return matcher indices */ &kMatcherIndices[39],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [255] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[0],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[603],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ true,
  },
  {
    /* [256] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[557],
    /* return matcher indices */ &kMatcherIndices[43],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [257] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[591],
    /* return matcher indices */ &kMatcherIndices[91],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [258] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[583],
    /* return matcher indices */ &kMatcherIndices[91],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [259] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[564],
    /* return matcher indices */ &kMatcherIndices[91],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [260] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[563],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [261] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[562],
    /* return matcher indices */ &kMatcherIndices[85],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [262] */
    /* num parameters */ 0,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[671],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [263] */
    /* num parameters */ 3,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[351],
    /* return matcher indices */ &kMatcherIndices[105],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [264] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[432],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [265] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[517],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [266] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[555],
    /* return matcher indices */ &kMatcherIndices[43],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [267] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[556],
    /* return matcher indices */ &kMatcherIndices[43],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [268] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[558],
    /* return matcher indices */ &kMatcherIndices[43],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [269] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[559],
    /* return matcher indices */ &kMatcherIndices[43],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [270] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[560],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [271] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 2,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[2],
    /* parameters */ &kParameters[633],
    /* return matcher indices */ &kMatcherIndices[9],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [272] */
    /* num parameters */ 3,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[366],
    /* return matcher indices */ &kMatcherIndices[21],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [273] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[1],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[493],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [274] */
    /* num parameters */ 1,
    /* num open types */ 0,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[3],
    /* parameters */ &kParameters[635],
    /* return matcher indices */ &kMatcherIndices[12],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [275] */
    /* num parameters */ 2,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[487],
    /* return matcher indices */ &kMatcherIndices[89],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [276] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[0],
    /* open numbers */ &kOpenNumbers[4],
    /* parameters */ &kParameters[653],
    /* return matcher indices */ &kMatcherIndices[43],
    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [277] */
    /* num parameters */ 1,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[662],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [278] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[473],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [279] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[471],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [280] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[469],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [281] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[467],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [282] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[465],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [283] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[463],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [284] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[461],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [285] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[507],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [286] */
    /* num parameters */ 2,
    /* num open types */ 1,
    /* num open numbers */ 1,
    /* open types */ &kOpenTypes[2],
    /* open numbers */ &kOpenNumbers[5],
    /* parameters */ &kParameters[481],
    /* return matcher indices */ &kMatcherIndices[1],
    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
  {
    /* [287] */
    /* num parameters */ 0,
    /* num open types */ 0,
    /* num open numbers */ 0,
    /* open types */ &kOpenTypes[4],
    /* open numbers */ &kOpenNumbers[6],
    /* parameters */ &kParameters[671],
    /* return matcher indices */ nullptr,
    /* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
    /* is_deprecated */ false,
  },
};

constexpr IntrinsicInfo kIntrinsics[] = {
  {
    /* [0] */
    /* fn abs<T : fiu32>(T) -> T */
    /* fn abs<N : num, T : fiu32>(vec<N, T>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[253],
  },
  {
    /* [1] */
    /* fn acos(f32) -> f32 */
    /* fn acos<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[235],
  },
  {
    /* [2] */
    /* fn all(bool) -> bool */
    /* fn all<N : num>(vec<N, bool>) -> bool */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[233],
  },
  {
    /* [3] */
    /* fn any(bool) -> bool */
    /* fn any<N : num>(vec<N, bool>) -> bool */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[229],
  },
  {
    /* [4] */
    /* fn arrayLength<T, A : access>(ptr<storage, array<T>, A>) -> u32 */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[276],
  },
  {
    /* [5] */
    /* fn asin(f32) -> f32 */
    /* fn asin<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[227],
  },
  {
    /* [6] */
    /* fn atan(f32) -> f32 */
    /* fn atan<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[221],
  },
  {
    /* [7] */
    /* fn atan2(f32, f32) -> f32 */
    /* fn atan2<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[219],
  },
  {
    /* [8] */
    /* fn ceil(f32) -> f32 */
    /* fn ceil<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[213],
  },
  {
    /* [9] */
    /* fn clamp<T : fiu32>(T, T, T) -> T */
    /* fn clamp<N : num, T : fiu32>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[211],
  },
  {
    /* [10] */
    /* fn cos(f32) -> f32 */
    /* fn cos<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[207],
  },
  {
    /* [11] */
    /* fn cosh(f32) -> f32 */
    /* fn cosh<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[183],
  },
  {
    /* [12] */
    /* fn countOneBits<T : iu32>(T) -> T */
    /* fn countOneBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[167],
  },
  {
    /* [13] */
    /* fn cross(vec3<f32>, vec3<f32>) -> vec3<f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[275],
  },
  {
    /* [14] */
    /* fn degrees(f32) -> f32 */
    /* fn degrees<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[149],
  },
  {
    /* [15] */
    /* fn determinant<N : num>(mat<N, N, f32>) -> f32 */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[274],
  },
  {
    /* [16] */
    /* fn distance(f32, f32) -> f32 */
    /* fn distance<N : num>(vec<N, f32>, vec<N, f32>) -> f32 */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[147],
  },
  {
    /* [17] */
    /* fn dot<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[273],
  },
  {
    /* [18] */
    /* fn dpdx(f32) -> f32 */
    /* fn dpdx<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[151],
  },
  {
    /* [19] */
    /* fn dpdxCoarse(f32) -> f32 */
    /* fn dpdxCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[153],
  },
  {
    /* [20] */
    /* fn dpdxFine(f32) -> f32 */
    /* fn dpdxFine<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[155],
  },
  {
    /* [21] */
    /* fn dpdy(f32) -> f32 */
    /* fn dpdy<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[157],
  },
  {
    /* [22] */
    /* fn dpdyCoarse(f32) -> f32 */
    /* fn dpdyCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[159],
  },
  {
    /* [23] */
    /* fn dpdyFine(f32) -> f32 */
    /* fn dpdyFine<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[161],
  },
  {
    /* [24] */
    /* fn exp(f32) -> f32 */
    /* fn exp<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[163],
  },
  {
    /* [25] */
    /* fn exp2(f32) -> f32 */
    /* fn exp2<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[165],
  },
  {
    /* [26] */
    /* fn faceForward<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[272],
  },
  {
    /* [27] */
    /* fn floor(f32) -> f32 */
    /* fn floor<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[169],
  },
  {
    /* [28] */
    /* fn fma(f32, f32, f32) -> f32 */
    /* fn fma<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[171],
  },
  {
    /* [29] */
    /* fn fract(f32) -> f32 */
    /* fn fract<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[173],
  },
  {
    /* [30] */
    /* fn frexp(f32) -> __frexp_result */
    /* fn frexp<N : num>(vec<N, f32>) -> __frexp_result_vec<N> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[175],
  },
  {
    /* [31] */
    /* fn fwidth(f32) -> f32 */
    /* fn fwidth<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[177],
  },
  {
    /* [32] */
    /* fn fwidthCoarse(f32) -> f32 */
    /* fn fwidthCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[179],
  },
  {
    /* [33] */
    /* fn fwidthFine(f32) -> f32 */
    /* fn fwidthFine<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[181],
  },
  {
    /* [34] */
    /* fn ignore<T>(T) */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[255],
  },
  {
    /* [35] */
    /* fn inverseSqrt(f32) -> f32 */
    /* fn inverseSqrt<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[185],
  },
  {
    /* [36] */
    /* fn isFinite(f32) -> bool */
    /* fn isFinite<N : num>(vec<N, f32>) -> vec<N, bool> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[187],
  },
  {
    /* [37] */
    /* fn isInf(f32) -> bool */
    /* fn isInf<N : num>(vec<N, f32>) -> vec<N, bool> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[189],
  },
  {
    /* [38] */
    /* fn isNan(f32) -> bool */
    /* fn isNan<N : num>(vec<N, f32>) -> vec<N, bool> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[191],
  },
  {
    /* [39] */
    /* fn isNormal(f32) -> bool */
    /* fn isNormal<N : num>(vec<N, f32>) -> vec<N, bool> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[193],
  },
  {
    /* [40] */
    /* fn ldexp(f32, i32) -> f32 */
    /* fn ldexp<N : num>(vec<N, f32>, vec<N, i32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[195],
  },
  {
    /* [41] */
    /* fn length(f32) -> f32 */
    /* fn length<N : num>(vec<N, f32>) -> f32 */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[197],
  },
  {
    /* [42] */
    /* fn log(f32) -> f32 */
    /* fn log<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[199],
  },
  {
    /* [43] */
    /* fn log2(f32) -> f32 */
    /* fn log2<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[201],
  },
  {
    /* [44] */
    /* fn max<T : fiu32>(T, T) -> T */
    /* fn max<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[203],
  },
  {
    /* [45] */
    /* fn min<T : fiu32>(T, T) -> T */
    /* fn min<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[205],
  },
  {
    /* [46] */
    /* fn mix(f32, f32, f32) -> f32 */
    /* fn mix<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
    /* fn mix<N : num>(vec<N, f32>, vec<N, f32>, f32) -> vec<N, f32> */
    /* num overloads */ 3,
    /* overloads */ &kOverloads[139],
  },
  {
    /* [47] */
    /* fn modf(f32) -> __modf_result */
    /* fn modf<N : num>(vec<N, f32>) -> __modf_result_vec<N> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[209],
  },
  {
    /* [48] */
    /* fn normalize<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[270],
  },
  {
    /* [49] */
    /* fn pack2x16float(vec2<f32>) -> u32 */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[269],
  },
  {
    /* [50] */
    /* fn pack2x16snorm(vec2<f32>) -> u32 */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[268],
  },
  {
    /* [51] */
    /* fn pack2x16unorm(vec2<f32>) -> u32 */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[256],
  },
  {
    /* [52] */
    /* fn pack4x8snorm(vec4<f32>) -> u32 */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[267],
  },
  {
    /* [53] */
    /* fn pack4x8unorm(vec4<f32>) -> u32 */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[266],
  },
  {
    /* [54] */
    /* fn pow(f32, f32) -> f32 */
    /* fn pow<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[223],
  },
  {
    /* [55] */
    /* fn radians(f32) -> f32 */
    /* fn radians<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[225],
  },
  {
    /* [56] */
    /* fn reflect<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[265],
  },
  {
    /* [57] */
    /* fn refract<N : num>(vec<N, f32>, vec<N, f32>, f32) -> vec<N, f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[264],
  },
  {
    /* [58] */
    /* fn reverseBits<T : iu32>(T) -> T */
    /* fn reverseBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[231],
  },
  {
    /* [59] */
    /* fn round(f32) -> f32 */
    /* fn round<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[249],
  },
  {
    /* [60] */
    /* fn select<T : scalar>(T, T, bool) -> T */
    /* fn select<T : scalar, N : num>(vec<N, T>, vec<N, T>, bool) -> vec<N, T> */
    /* fn select<N : num, T : scalar>(vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T> */
    /* num overloads */ 3,
    /* overloads */ &kOverloads[142],
  },
  {
    /* [61] */
    /* fn sign(f32) -> f32 */
    /* fn sign<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[237],
  },
  {
    /* [62] */
    /* fn sin(f32) -> f32 */
    /* fn sin<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[239],
  },
  {
    /* [63] */
    /* fn sinh(f32) -> f32 */
    /* fn sinh<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[251],
  },
  {
    /* [64] */
    /* fn smoothStep(f32, f32, f32) -> f32 */
    /* fn smoothStep<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[243],
  },
  {
    /* [65] */
    /* fn sqrt(f32) -> f32 */
    /* fn sqrt<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[245],
  },
  {
    /* [66] */
    /* fn step(f32, f32) -> f32 */
    /* fn step<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[247],
  },
  {
    /* [67] */
    /* fn storageBarrier() */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[287],
  },
  {
    /* [68] */
    /* fn tan(f32) -> f32 */
    /* fn tan<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[145],
  },
  {
    /* [69] */
    /* fn tanh(f32) -> f32 */
    /* fn tanh<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[217],
  },
  {
    /* [70] */
    /* fn transpose<M : num, N : num>(mat<M, N, f32>) -> mat<N, M, f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[271],
  },
  {
    /* [71] */
    /* fn trunc(f32) -> f32 */
    /* fn trunc<N : num>(vec<N, f32>) -> vec<N, f32> */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[241],
  },
  {
    /* [72] */
    /* fn unpack2x16float(u32) -> vec2<f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[257],
  },
  {
    /* [73] */
    /* fn unpack2x16snorm(u32) -> vec2<f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[258],
  },
  {
    /* [74] */
    /* fn unpack2x16unorm(u32) -> vec2<f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[259],
  },
  {
    /* [75] */
    /* fn unpack4x8snorm(u32) -> vec4<f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[260],
  },
  {
    /* [76] */
    /* fn unpack4x8unorm(u32) -> vec4<f32> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[261],
  },
  {
    /* [77] */
    /* fn workgroupBarrier() */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[262],
  },
  {
    /* [78] */
    /* fn textureDimensions<T : fiu32>(texture: texture_1d<T>) -> i32 */
    /* fn textureDimensions<T : fiu32>(texture: texture_1d<T>, level: i32) -> i32 */
    /* fn textureDimensions<T : fiu32>(texture: texture_2d<T>) -> vec2<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_2d<T>, level: i32) -> vec2<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_2d_array<T>) -> vec2<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_2d_array<T>, level: i32) -> vec2<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_3d<T>) -> vec3<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_3d<T>, level: i32) -> vec3<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_cube<T>) -> vec2<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_cube<T>, level: i32) -> vec2<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_cube_array<T>) -> vec2<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_cube_array<T>, level: i32) -> vec2<i32> */
    /* fn textureDimensions<T : fiu32>(texture: texture_multisampled_2d<T>) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_2d) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_2d, level: i32) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_2d_array) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_2d_array, level: i32) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_cube) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_cube, level: i32) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_cube_array) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_cube_array, level: i32) -> vec2<i32> */
    /* fn textureDimensions(texture: texture_depth_multisampled_2d) -> vec2<i32> */
    /* fn textureDimensions<F : texel_format, A : write_only>(texture: texture_storage_1d<F, A>) -> i32 */
    /* fn textureDimensions<F : texel_format, A : write_only>(texture: texture_storage_2d<F, A>) -> vec2<i32> */
    /* fn textureDimensions<F : texel_format, A : write_only>(texture: texture_storage_2d_array<F, A>) -> vec2<i32> */
    /* fn textureDimensions<F : texel_format, A : write_only>(texture: texture_storage_3d<F, A>) -> vec3<i32> */
    /* fn textureDimensions(texture: texture_external) -> vec2<i32> */
    /* num overloads */ 27,
    /* overloads */ &kOverloads[0],
  },
  {
    /* [79] */
    /* fn textureGather<T : fiu32>(component: i32, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>) -> vec4<T> */
    /* fn textureGather<T : fiu32>(component: i32, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<T> */
    /* fn textureGather<T : fiu32>(component: i32, texture: texture_2d_array<T>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<T> */
    /* fn textureGather<T : fiu32>(component: i32, texture: texture_2d_array<T>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<T> */
    /* fn textureGather<T : fiu32>(component: i32, texture: texture_cube<T>, sampler: sampler, coords: vec3<f32>) -> vec4<T> */
    /* fn textureGather<T : fiu32>(component: i32, texture: texture_cube_array<T>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<T> */
    /* fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
    /* fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32> */
    /* fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureGather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
    /* fn textureGather(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32> */
    /* num overloads */ 12,
    /* overloads */ &kOverloads[69],
  },
  {
    /* [80] */
    /* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32> */
    /* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> vec4<f32> */
    /* fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32> */
    /* fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> vec4<f32> */
    /* num overloads */ 6,
    /* overloads */ &kOverloads[122],
  },
  {
    /* [81] */
    /* fn textureNumLayers<T : fiu32>(texture: texture_2d_array<T>) -> i32 */
    /* fn textureNumLayers<T : fiu32>(texture: texture_cube_array<T>) -> i32 */
    /* fn textureNumLayers(texture: texture_depth_2d_array) -> i32 */
    /* fn textureNumLayers(texture: texture_depth_cube_array) -> i32 */
    /* fn textureNumLayers<F : texel_format, A : write_only>(texture: texture_storage_2d_array<F, A>) -> i32 */
    /* num overloads */ 5,
    /* overloads */ &kOverloads[134],
  },
  {
    /* [82] */
    /* fn textureNumLevels<T : fiu32>(texture: texture_1d<T>) -> i32 */
    /* fn textureNumLevels<T : fiu32>(texture: texture_2d<T>) -> i32 */
    /* fn textureNumLevels<T : fiu32>(texture: texture_2d_array<T>) -> i32 */
    /* fn textureNumLevels<T : fiu32>(texture: texture_3d<T>) -> i32 */
    /* fn textureNumLevels<T : fiu32>(texture: texture_cube<T>) -> i32 */
    /* fn textureNumLevels<T : fiu32>(texture: texture_cube_array<T>) -> i32 */
    /* fn textureNumLevels(texture: texture_depth_2d) -> i32 */
    /* fn textureNumLevels(texture: texture_depth_2d_array) -> i32 */
    /* fn textureNumLevels(texture: texture_depth_cube) -> i32 */
    /* fn textureNumLevels(texture: texture_depth_cube_array) -> i32 */
    /* num overloads */ 10,
    /* overloads */ &kOverloads[81],
  },
  {
    /* [83] */
    /* fn textureNumSamples<T : fiu32>(texture: texture_multisampled_2d<T>) -> i32 */
    /* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> i32 */
    /* num overloads */ 2,
    /* overloads */ &kOverloads[215],
  },
  {
    /* [84] */
    /* fn textureSample(texture: texture_1d<f32>, sampler: sampler, coords: f32) -> vec4<f32> */
    /* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
    /* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32> */
    /* fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
    /* fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, offset: vec3<i32>) -> vec4<f32> */
    /* fn textureSample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
    /* fn textureSample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32> */
    /* fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> f32 */
    /* fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> f32 */
    /* fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> f32 */
    /* fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> f32 */
    /* fn textureSample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32 */
    /* fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> f32 */
    /* num overloads */ 15,
    /* overloads */ &kOverloads[42],
  },
  {
    /* [85] */
    /* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32> */
    /* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32) -> vec4<f32> */
    /* fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32> */
    /* fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32, offset: vec3<i32>) -> vec4<f32> */
    /* fn textureSampleBias(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32> */
    /* fn textureSampleBias(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, bias: f32) -> vec4<f32> */
    /* num overloads */ 8,
    /* overloads */ &kOverloads[100],
  },
  {
    /* [86] */
    /* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
    /* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32 */
    /* fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32 */
    /* fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> f32 */
    /* fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32 */
    /* fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32 */
    /* num overloads */ 6,
    /* overloads */ &kOverloads[128],
  },
  {
    /* [87] */
    /* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
    /* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32 */
    /* fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32 */
    /* fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> f32 */
    /* fn textureSampleCompareLevel(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32 */
    /* fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32 */
    /* num overloads */ 6,
    /* overloads */ &kOverloads[116],
  },
  {
    /* [88] */
    /* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
    /* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
    /* fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32> */
    /* fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>, offset: vec3<i32>) -> vec4<f32> */
    /* fn textureSampleGrad(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32> */
    /* fn textureSampleGrad(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32> */
    /* num overloads */ 8,
    /* overloads */ &kOverloads[108],
  },
  {
    /* [89] */
    /* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32> */
    /* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32) -> vec4<f32> */
    /* fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32, offset: vec2<i32>) -> vec4<f32> */
    /* fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32> */
    /* fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32, offset: vec3<i32>) -> vec4<f32> */
    /* fn textureSampleLevel(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32> */
    /* fn textureSampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, level: f32) -> vec4<f32> */
    /* fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32) -> f32 */
    /* fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32, offset: vec2<i32>) -> f32 */
    /* fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32) -> f32 */
    /* fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32, offset: vec2<i32>) -> f32 */
    /* fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: i32) -> f32 */
    /* fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32, level: i32) -> f32 */
    /* fn textureSampleLevel(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
    /* num overloads */ 15,
    /* overloads */ &kOverloads[27],
  },
  {
    /* [90] */
    /* fn textureStore(texture: texture_storage_1d<f32_texel_format, write>, coords: i32, value: vec4<f32>) */
    /* fn textureStore(texture: texture_storage_2d<f32_texel_format, write>, coords: vec2<i32>, value: vec4<f32>) */
    /* fn textureStore(texture: texture_storage_2d_array<f32_texel_format, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>) */
    /* fn textureStore(texture: texture_storage_3d<f32_texel_format, write>, coords: vec3<i32>, value: vec4<f32>) */
    /* fn textureStore(texture: texture_storage_1d<i32_texel_format, write>, coords: i32, value: vec4<i32>) */
    /* fn textureStore(texture: texture_storage_2d<i32_texel_format, write>, coords: vec2<i32>, value: vec4<i32>) */
    /* fn textureStore(texture: texture_storage_2d_array<i32_texel_format, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>) */
    /* fn textureStore(texture: texture_storage_3d<i32_texel_format, write>, coords: vec3<i32>, value: vec4<i32>) */
    /* fn textureStore(texture: texture_storage_1d<u32_texel_format, write>, coords: i32, value: vec4<u32>) */
    /* fn textureStore(texture: texture_storage_2d<u32_texel_format, write>, coords: vec2<i32>, value: vec4<u32>) */
    /* fn textureStore(texture: texture_storage_2d_array<u32_texel_format, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>) */
    /* fn textureStore(texture: texture_storage_3d<u32_texel_format, write>, coords: vec3<i32>, value: vec4<u32>) */
    /* num overloads */ 12,
    /* overloads */ &kOverloads[57],
  },
  {
    /* [91] */
    /* fn textureLoad<T : fiu32>(texture: texture_1d<T>, coords: i32, level: i32) -> vec4<T> */
    /* fn textureLoad<T : fiu32>(texture: texture_2d<T>, coords: vec2<i32>, level: i32) -> vec4<T> */
    /* fn textureLoad<T : fiu32>(texture: texture_2d_array<T>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<T> */
    /* fn textureLoad<T : fiu32>(texture: texture_3d<T>, coords: vec3<i32>, level: i32) -> vec4<T> */
    /* fn textureLoad<T : fiu32>(texture: texture_multisampled_2d<T>, coords: vec2<i32>, sample_index: i32) -> vec4<T> */
    /* fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: i32) -> f32 */
    /* fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: i32) -> f32 */
    /* fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: i32) -> f32 */
    /* fn textureLoad(texture: texture_external, coords: vec2<i32>) -> vec4<f32> */
    /* num overloads */ 9,
    /* overloads */ &kOverloads[91],
  },
  {
    /* [92] */
    /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[277],
  },
  {
    /* [93] */
    /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[278],
  },
  {
    /* [94] */
    /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[279],
  },
  {
    /* [95] */
    /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[280],
  },
  {
    /* [96] */
    /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[281],
  },
  {
    /* [97] */
    /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[282],
  },
  {
    /* [98] */
    /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[283],
  },
  {
    /* [99] */
    /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[284],
  },
  {
    /* [100] */
    /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[285],
  },
  {
    /* [101] */
    /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[286],
  },
  {
    /* [102] */
    /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> vec2<T> */
    /* num overloads */ 1,
    /* overloads */ &kOverloads[263],
  },
};

// clang-format on
